Hybris Sales UX API
Quote Management MOBILE
The Quote API is one of the Pre-Ordering Management API to retrieve the TAX information
Key Points for LCPR Mobile Customer
- category used to categorize the quote from a business perspective that can be useful for the CRM system. E.g. RES for CSG fixed or MOB for Vertex
- Under Note "InvoiceTextLanguage" defines Invoice Text Language. Valid values are Spanish or English. Must be populated.
- Under Note "CustomerType" defines Customer Type. Valid values are B2B or B2C. Must be populated with one of these values.
- Under Note "Host" defines system Identifier. Which system and environment is making the call to Vertex. Example: "ECOM"
- quoteItem.id is Product Code from Product Catalog Example: "PR_B2C_ULT_Premium_MB_Line".
- quoteItem.product.id is Vertex Class Code Example: "UNL_PREM".
- quoteItem.product.name is Product Catalog Name Example: "Unlimited Premium Mobile Line".
- externalId is Hybris quote Id or Cart Id
- requestedQuoteCompletionDate is Quote date or systemDate. Example: "2023-11-07T08:45:12.028-04:00"
- Under Note "BAN-CAN" need to provide BAN-CAN
- quoteitem.id ( ProductId) , quoteitem.product.id (Vertex class id) , quoteitem.product.name(product name) these request fields will accept below 40 characters length only from vertex.
- In single request we can add maximum of 40 products.
BaseUriParameter
Name | Type | M/O | Description |
---|---|---|---|
businessId | string | M | Business unit identifier. For LCPR it is ‘PR’ |
Headers
Security Headers client ID and client secret are mandatory to pass under Headers to access API.
Name | Type | M/O | Description |
---|---|---|---|
client_id | string | M | Client Id value for Client Id Enforcement policy. Environment Specific Value. Eg: 6f0ed16a7b494d76b2d60e05bc3b3332 |
client_secret | string | M | Client secret value for Client Id Enforcement policy. Environment Specific Value, eg: e4CD4D43449846aA9D8Cb9c43fAd324a |
X-Correlation-ID | string | CM | Identifier that correlates HTTP request between a client and server. Any identification model (UUDI, checksum, etc.) can be used, as long as it is a unique value to differentiate a transaction. Conditional mandatory field which will be used in logging. Example: f058ebd6-02f7-4d3f-942e-904344e8cde5 |
Request
{
"category": "MOB",
"externalId": "2902202403",
"instantSyncQuote": true,
"requestedQuoteCompletionDate": "2024-03-05T00:00:00.000-04:00",
"quoteItem": [
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100.00
}
}
}
],
"@type": "Plan"
},
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100.00
}
}
}
],
"@type": "Plan"
},
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100.00
}
}
}
],
"@type": "Plan"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000.00
}
}
}
],
"@type": "Device"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000.00
}
}
}
],
"@type": "Device"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000.00
}
}
}
],
"@type": "Device"
}
],
"contactMedium": [
{
"mediumType": "address",
"characteristic": {
"city": "San Juan",
"country": "Puerto Rico",
"postCode": "00926",
"stateOrProvince": "PR",
"street1": "996 Calle San Roberto",
"contactType": "billingAddress"
}
}
],
"note": [
{
"text": "ECOM",
"@type": "Host"
},
{
"text": "B2C",
"@type": "CustomerType"
},
{
"text": "2402202403",
"@type": "BAN-CAN"
},
{
"text": "Spanish",
"@type": "InvoiceTextLanguage"
}
],
"@type": "Quote"
}
Response
{
"category": "MOB",
"externalId": "2902202403",
"instantSyncQuote": true,
"requestedQuoteCompletionDate": "2024-03-05T00:00:00-04:00",
"quoteItem": [
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100
},
"taxIncludedAmount": {
"unit": "USD",
"value": 100.9
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 0.59
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.06
},
"taxCategory": "IVU - Municipal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.17
},
"taxCategory": "Cargo por el Servicio Universal Federal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.08
},
"taxCategory": "Servicio Universal de Puerto Rico"
},
{
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxCategory": "Servicio Universal de Puerto Rico"
}
]
}
],
"@type": "Plan"
},
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100
},
"taxIncludedAmount": {
"unit": "USD",
"value": 100.9
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 0.6
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.06
},
"taxCategory": "IVU - Municipal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.17
},
"taxCategory": "Cargo por el Servicio Universal Federal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.07
},
"taxCategory": "Servicio Universal de Puerto Rico"
},
{
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxCategory": "Servicio Universal de Puerto Rico"
}
]
}
],
"@type": "Plan"
},
{
"id": "PR_B2C_ULT_Extra_MB_Line",
"quantity": 1,
"action": "add",
"product": {
"id": "UNL_EXTRA",
"name": "Unlimited Extra Mobile Line",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 100
},
"taxIncludedAmount": {
"unit": "USD",
"value": 100.89
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 0.6
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.05
},
"taxCategory": "IVU - Municipal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.17
},
"taxCategory": "Cargo por el Servicio Universal Federal"
},
{
"taxAmount": {
"unit": "USD",
"value": 0.07
},
"taxCategory": "Servicio Universal de Puerto Rico"
},
{
"taxAmount": {
"unit": "USD",
"value": 0
},
"taxCategory": "Servicio Universal de Puerto Rico"
}
]
}
],
"@type": "Plan"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000
},
"taxIncludedAmount": {
"unit": "USD",
"value": 1115
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 105
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 10
},
"taxCategory": "IVU - Municipal"
}
]
}
],
"@type": "Device"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000
},
"taxIncludedAmount": {
"unit": "USD",
"value": 1115
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 105
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 10
},
"taxCategory": "IVU - Municipal"
}
]
}
],
"@type": "Device"
},
{
"id": "LLA_iPhone_12_Pro_Max",
"quantity": 1,
"action": "add",
"product": {
"id": "Smartphones_TPP",
"name": "iPhone 12 Pro Max",
"@type": "Product"
},
"quoteItemPrice": [
{
"price": {
"dutyFreeAmount": {
"unit": "USD",
"value": 1000
},
"taxIncludedAmount": {
"unit": "USD",
"value": 1115
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 105
},
"taxCategory": "IVU - Estatal"
},
{
"taxAmount": {
"unit": "USD",
"value": 10
},
"taxCategory": "IVU - Municipal"
}
]
}
],
"@type": "Device"
}
],
"quoteTotalPrice": [
{
"extendedPrice": {
"dutyFreeAmount": {
"unit": "USD",
"value": 3300
},
"taxIncludedAmount": {
"unit": "USD",
"value": 3647.69
}
},
"taxItem": [
{
"taxAmount": {
"unit": "USD",
"value": 347.69
},
"taxCategory": "TOTAL TAXES"
}
]
}
],
"contactMedium": [
{
"mediumType": "address",
"characteristic": {
"city": "San Juan",
"country": "Puerto Rico",
"postCode": "00926",
"stateOrProvince": "PR",
"street1": "996 Calle San Roberto",
"contactType": "billingAddress"
}
}
],
"note": [
{
"text": "ECOM",
"@type": "Host"
},
{
"text": "B2C",
"@type": "CustomerType"
},
{
"text": "2402202403",
"@type": "BAN-CAN"
},
{
"text": "Spanish",
"@type": "InvoiceTextLanguage"
}
],
"@type": "Quote"
}
Possible Error Responses:
- When we miss quoteItem.id value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 40 lineItems[0].lineItemId"
}
]
}
- When we miss category value
{
"errors": [
{
"code": 501,
"message": "LLA:NOT_IMPLEMENTED",
"description": "Operation POST /quote for targetSystem : Cannot be blank and channelId : Cannot be blank "
}
]
}
- When we miss contactMedium.characteristic.city value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 60 customer.destination.city"
}
]
}
- When we miss contactMedium.characteristic.country value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 60 customer.destination.country"
}
]
}
- When we miss contactMedium.characteristic.postalCode value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 20 customer.destination.postalCode"
}
]
}
- When we miss contactMedium.characteristic.mainDivision value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 60 customer.destination.mainDivision"
}
]
}
- When we miss contactMedium.characteristic.streetAddress1 value
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 100 customer.destination.streetAddress1"
}
]
}
- When we miss note.text value when '@type' = "BAN-CAN"
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 250 lineItems[0].flexibleFields.flexibleCodeFields[3].value"
}
]
}
- When we miss note.text value when '@type' = "CustomerType"
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 250 lineItems[1].flexibleFields.flexibleCodeFields[1].value"
}
]
}
- When we miss note.text value when '@type' = "Host"
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 250 lineItems[0].flexibleFields.flexibleCodeFields[0].value"
}
]
}
- When we miss note.text value when '@type' = "InvoiceTextLanguage"
{
"errors": [
{
"code": 400,
"message": "ERROR:POSTQUOTE",
"description": "size must be between 1 and 250 lineItems[2].flexibleFields.flexibleCodeFields[4].value"
}
]
}
Definitions
Each of the request parameters is detailed.
name | type | description | required |
---|---|---|---|
category | string | Used to categorize the quote from a business perspective that can be useful for the CRM system. E.g. RES for CSG fixed or MOB for Vertex | M |
externalId | string | Hybris quote Id | M |
instantSyncQuote | boolean | Fixed value: true | M |
requestedQuoteCompletionDate | Date Time | Quote date or systemDate | O |
quoteItem | array | A list of quote items. An item of the quote - it is used to describe an operation on a product to be quoted. | M |
quoteItem.id | string | Product Code from Product Catalog | M |
quoteItem.quantity | integer | An integer. Quantity asked for this quote item. | O |
quoteItem.action | string | Fixed Value: Add | O |
quoteItem.product | object | A product to be created defined by value or existing defined by reference. The polymorphic attributes @type,@schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself. | M |
quoteItem.product.id | string | Vertex Class Code | M |
quoteItem.product.name | string | Product Catalog Name | O |
quoteItem.product."@type" | string | Fixed Value: Product | O |
quoteItem.quoteItemPrice | array | A list of quote prices. Price for this quote item. | M |
quoteItem.quoteItemPrice.price | object | A money. All taxes included amount (expressed in the given currency). | M |
quoteItem.quoteItemPrice.price.dutyFreeAmount | object | A money (Money). All taxes excluded amount (expressed in the given currency). | O |
quoteItem.quoteItemPrice.price.dutyFreeAmount.unit | string | Currency, "USD" | O |
quoteItem.quoteItemPrice.price.dutyFreeAmount.value | integer | Product Item in the quote | M |
quoteItem."@type" | string | Depending upon the schema: Plan Device AddonProduct | M |
contactMedium | array | A list of contact mediums. Information contact related to the quote requester. | M |
contactMedium.mediumType | string | A string. Type of the contact medium, such as: email address, telephone number, postal address. | O |
contactMedium.characteristic | object | A medium characteristic (MediumCharacteristic). Any additional characteristic(s) of this contact medium. | M |
contactMedium.characteristic.city | string | city | M |
contactMedium.characteristic.country | string | Country, "US" | M |
contactMedium.characteristic.postCode | string | Postal Code | M |
contactMedium.characteristic.stateOrProvince | string | State or province. | M |
contactMedium.characteristic.street1 | string | Street Description | M |
contactMedium.characteristic.contactType | string | The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping installation…. | O |
note | array | A list of notes. Free form text associated with the quote. | M |
note.text | string | Value of the associated type | O |
note."@type" | string | Metadata required Host CustomerType InvoiceTextLanguage | M |
"@type" | string | Fixed value: "Quote" | M |
Response Definitions
Each of the response parameters is detailed.
name | type | description | required |
---|---|---|---|
category | string | Used to categorize the quote from a business perspective that can be useful for the CRM system. E.g. RES for CSG fixed or MOB for Vertex | M |
externalId | string | Hybris quote Id | M |
instantSyncQuote | boolean | Fixed value: true | M |
requestedQuoteCompletionDate | Date Time | Quote date or systemDate | O |
contactMedium | array | A list of contact mediums. Information contact related to the quote requester. Customer Address to be able to use as destination for the taxes calculation | M |
contactMedium.mediumType | string | A string. Type of the contact medium, such as: email address, telephone number, postal address. | O |
contactMedium.characteristic | object | A medium characteristic (MediumCharacteristic). Any additional characteristic(s) of this contact medium. | M |
contactMedium.characteristic.city | string | city | M |
contactMedium.characteristic.country | string | Country, "US" | M |
contactMedium.characteristic.street1 | string | Street Description | M |
contactMedium.characteristic.street2 | string | Complementary street description. | M |
contactMedium.characteristic.postCode | string | Postal Code | M |
contactMedium.characteristic.stateOrProvince | string | State or province. | M |
contactMedium.characteristic.contactType | string | The type of contact, for example: phone number such as mobile, fixed home, fixed office. postal address such as shipping installation…. | O |
quoteItem | array | A list of quote items. An item of the quote - it is used to describe an operation on a product to be quoted. | M |
quoteItem.@type | string | Polymorphic item field to describe the type of item in the cart."Plan", "Device", "Fee", "AddonProduct" as possible values for mobile. | M |
quoteItem.id | string | Product Code from Product Catalog Example: "PR_B2C_ULT_Premium_MB_Line" | M |
quoteItem.quantity | string | Quantity of the same product | M |
quoteItem.action | string | Fixed Value: Add | O |
quoteItem.product | object | A product to be created defined by value or existing defined by reference. The polymorphic attributes @type,@schemaLocation & @referredType are related to the product entity and not the RelatedProductRefOrValue class itself. | M |
quoteItem.product.id | string | Vertex Class Code Example: "UNL_PREM" | M |
quoteItem.product.name | string | Product Catalog Name Example: "Unlimited Premium Mobile Line" | O |
quoteItem.quoteItemPrice | array | A list of quote prices. Price for this quote item. | M |
quoteItem.quoteItemPrice.price | object | A money. All taxes included amount (expressed in the given currency). | M |
quoteItem.quoteItemPrice.price.dutyFreeAmount | object | A money (Money). All taxes excluded amount (expressed in the given currency). | O |
quoteItem.quoteItemPrice.price.dutyFreeAmount.unit | string | Currency, "USD" | O |
quoteItem.quoteItemPrice.price.dutyFreeAmount.value | integer | Product Item in the quote | M |
quoteItem.quoteItemPrice.price.taxIncludedAmount | array | A money (Money). All taxes included amount (expressed in the given currency). | O |
quoteItem.quoteItemPrice.price.taxIncludedAmount.unit | string | A money (Money). All taxes included amount (expressed in the given currency). | O |
quoteItem.quoteItemPrice.price.taxIncludedAmount.value | float | A float. A positive floating point number. | O |
quoteItem.quoteItemPrice.taxItem.taxAmount | array | All taxes amount(expressed in the given currency). | O |
quoteItem.quoteItemPrice.taxItem | Array | Array of Tax Items(tax split rate) including total tax which will be the first element.Tax Items will be applicable for Balance as of now(quoteTotalPrice.name) | M |
quoteItem.quoteItemPrice.taxItem.taxAmount.unit | string | A money (Money). All taxes included amount (expressed in the given currency). | O |
quoteItem.quoteItemPrice.taxItem.taxAmount.value | float | A float. A positive floating point number. | O |
quoteItem.quoteItemPrice.taxItem.taxAmount.taxCategory | string | A string. Text of the tax items. | O |
quoteTotalPrice | array | A list of quote prices (QuotePrice [*]). Quote total price. | M |
quoteTotalPrice.extendedPrice | integer | ||
quoteTotalPrice.extendedPrice.dutyFreeAmount | object | ||
quoteTotalPrice.extendedPrice.dutyFreeAmount.unit | string | ||
quoteTotalPrice.extendedPrice.dutyFreeAmount.value | float | ||
quoteTotalPrice.extendedPrice.taxIncludedAmount | string | ||
quoteTotalPrice.extendedPrice.taxIncludedAmount.unit | string | Currency (ISO4217 norm uses 3 letters to define the currency) | M |
quoteTotalPrice.extendedPrice.taxIncludedAmount.value | float | Used to map PreviousBalance, Balance and ProjectedBalance amount from Obtain projected future statement response | M |
quoteTotalPrice.taxItem.taxAmount | object | ||
quoteTotalPrice.taxItem.taxAmount.unit | string | ||
quoteTotalPrice.taxItem.taxAmount.value | float | Used to map TAXES/FEES from Obtain projected future statement response (Total Tax Amount) | M |
quoteTotalPrice.taxItem.taxCategory | string | ||
note | array | A list of notes. Free form text associated with the quote. | M |
note.text | string | Value of the associated type | O |
note."@type" | string | Metadata required Host CustomerType InvoiceTextLanguage | M |
"@type" | string | Fixed value: "Quote" | O |